home *** CD-ROM | disk | FTP | other *** search
/ Item MB Quick & Easy 2.0 / Item MB Quick & Easy 2.0.iso / mbfacad / mb37071.lsp < prev    next >
Text File  |  1998-03-15  |  21KB  |  538 lines

  1. ;=============370.71 MULTIBLOCK 5 PA
  2.  
  3.  
  4. (defun C:37071SV ( / X P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 Wi Wix WH WV
  5.                      E1 SS1 BName)
  6.    (EAITDBL "0037071")
  7.    (princ (strcat "\n\n" EAITbez1))
  8.    (EAITvari)
  9.    (EAITvars)
  10.    (setq X nil)
  11.    (while (not X)
  12.       (if (not EAITebl)(setq EAITebl 6))
  13.       (EAITmsg "mb_mld15" "\n" "005" "<")(princ EAITebl)(princ "> : ") ;Einbaulage X (4; 6; 8; 10) < EAITebl >:
  14.       (initget 6)
  15.       (setq X (getint))
  16.       (cond ((= X nil)(setq X EAITebl))
  17.             ((= X   4)(princ))
  18.             ((= X   6)(princ))
  19.             ((= X   8)(princ))
  20.             ((= X  10)(princ))
  21.             (T        (setq X nil))
  22.       )
  23.    )        
  24.    (setq EAITebl X)
  25.    (setvar "ORTHOMODE" 1)
  26.    (EAITbpt EAITofpun 8 nil)
  27.    (setq P1 (getpoint))
  28.    (if (= P1 nil)(setq P1 (EAITrpt)))
  29.    (setvar "ORTHOMODE" 0)
  30.    (setvar "OSMODE" 0)
  31.    (initget 1)
  32.    (EAITmsg "mb_mld15" "\n" "006" nil)           ;Lage des Flaechenelementes
  33.    (setq Wi (getangle P1)
  34.          Wix (EAITbig Wi))
  35.    (cond ((and (>= Wix   0)(< Wix  90))(setq WH   0 WV  90 Wix 0))
  36.          ((and (>= Wix  90)(< Wix 180))(setq WH 180 WV  90 Wix 180))
  37.          ((and (>= Wix 180)(< Wix 270))(setq WH 180 WV 270 Wix 180))
  38.          (T                            (setq WH   0 WV 270 Wix 0))
  39.    )
  40.    (cond ((= X 4)(setq P2 (polar P1 (EAITgib WV) 4)
  41.                        P3 (polar P2 (EAITgib WH) 12)
  42.                        P4 (polar P3 (EAITgib (+ WV 180)) 14)
  43.                        P5 (polar P4 (EAITgib (+ WH 180)) 12)
  44.                        P6 (polar P1 (EAITgib (+ WV 180)) 8)
  45.                        P7 (polar P6 (EAITgib WH) 9)
  46.                        P8 (polar P7 (EAITgib WV) 12)
  47.                  )
  48.          )
  49.          ((= X 6)(setq P2 (polar P1 (EAITgib WV) 6)
  50.                        P3 (polar P2 (EAITgib WH) 12)
  51.                        P4 (polar P3 (EAITgib (+ WV 180)) 14)
  52.                        P5 (polar P4 (EAITgib (+ WH 180)) 12)
  53.                        P6 (polar P1 (EAITgib WV) 4)
  54.                        P7 (polar P6 (EAITgib WH) 9)
  55.                        P8 (polar P7 (EAITgib (+ WV 180)) 12)
  56.                  )
  57.          )
  58.          ((= X 8)(setq P2 (polar P1 (EAITgib WV) 8)
  59.                        P3 (polar P2 (EAITgib WH) 12)
  60.                        P4 (polar P3 (EAITgib (+ WV 180)) 14)
  61.                        P5 (polar P4 (EAITgib (+ WH 180)) 12)
  62.                        P6 (polar P1 (EAITgib (+ WV 180)) 4)
  63.                        P7 (polar P6 (EAITgib WH) 9)
  64.                        P8 (polar P7 (EAITgib WV) 12)
  65.                  )
  66.         )
  67.         (T       (setq P2 (polar P1 (EAITgib WV) 10)
  68.                        P3 (polar P2 (EAITgib WH) 12)
  69.                        P4 (polar P3 (EAITgib (+ WV 180)) 14)
  70.                        P5 (polar P4 (EAITgib (+ WH 180)) 12)
  71.                        P6 (polar P1 (EAITgib WV) 8)
  72.                        P7 (polar P6 (EAITgib WH) 9)
  73.                        P8 (polar P7 (EAITgib (+ WV 180)) 12)
  74.                  )
  75.         )
  76.    )
  77.    (command EAITege (strcat EAITpfn "37071s1") P1 "" "" (+ WH 180))
  78.    (setq E1 (entlast))
  79.    (command EAITlay EAITlse "EAIT50" ""
  80.             EAITlin P2 P3 P4 P5 P2 ""
  81.             EAITlin P6 P7 P8 ""
  82.             EAITlay EAITlse "EAITstp" ""
  83.             EAITlin (polar (polar P2 (EAITgib WH) 6) (EAITgib WV) 3) (polar (polar P5 (EAITgib WH) 6) (EAITgib (+ WV 180)) 3) "" )
  84.    (setq SS1 (EAITSS E1))
  85.    (setq BName (EAITbnr))
  86.    (command EAITblo BName P1 SS1 ""
  87.             EAITege BName P1 "" "" "")
  88.  
  89.    (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITgib Wix) 2.5) "" "" (EAITbig (EAITbw))
  90.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  91.    )
  92.  
  93.    (EAITvarz2)
  94.    (princ)
  95. );defun SV
  96.  
  97.  
  98.  
  99.  
  100.  
  101. (defun C:37071SH ( / X P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 Wi Wix WH WV
  102.                      E1 SS1 BName )
  103.    (EAITDBL "0037071")
  104.    (princ (strcat "\n\n" EAITbez1))
  105.    (EAITvari)
  106.    (EAITvars)
  107.    (setq X nil)
  108.    (while (not X)
  109.       (if (not EAITebl)(setq EAITebl 6))
  110.       (EAITmsg "mb_mld15" "\n" "005" "<")(princ EAITebl)(princ "> : ") ;Einbaulage X (4; 6; 8; 10) < EAITebl >:
  111.       (initget 6)
  112.       (setq X (getint))
  113.       (cond ((= X nil)(setq X EAITebl))
  114.             ((= X   4)(princ))
  115.             ((= X   6)(princ))
  116.             ((= X   8)(princ))
  117.             ((= X  10)(princ))
  118.             (T        (setq X nil))
  119.       )
  120.    )        
  121.    (setq EAITebl X)
  122.    (setvar "ORTHOMODE" 1)
  123.    (EAITbpt EAITofpun 8 nil)
  124.    (setq P1 (getpoint))
  125.    (if (= P1 nil)(setq P1 (EAITrpt)))
  126.    (setvar "ORTHOMODE" 0)
  127.    (setvar "OSMODE" 0)
  128.    (initget 1)
  129.    (EAITmsg "mb_mld15" "\n" "006" nil)           ;Lage des Flaechenelementes
  130.    (setq Wi (getangle P1)
  131.          Wix (EAITbig Wi))
  132.    (cond ((and (>= Wix   0)(< Wix  90))(setq WH   0 WV  90 Wix 90))
  133.          ((and (>= Wix  90)(< Wix 180))(setq WH 180 WV  90 Wix 90))
  134.          ((and (>= Wix 180)(< Wix 270))(setq WH 180 WV 270 Wix 270))
  135.          (T                            (setq WH   0 WV 270 Wix 270))
  136.    )
  137.    (cond ((= X 4)(setq P2 (polar P1 (EAITgib WH) 4)
  138.                        P3 (polar P2 (EAITgib WV) 12)
  139.                        P4 (polar P3 (EAITgib (+ WH 180)) 14)
  140.                        P5 (polar P4 (EAITgib (+ WV 180)) 12)
  141.                        P6 (polar P1 (EAITgib (+ WH 180)) 8)
  142.                        P7 (polar P6 (EAITgib WV) 9)
  143.                        P8 (polar P7 (EAITgib WH) 12)
  144.                  )
  145.          )
  146.          ((= X 6)(setq P2 (polar P1 (EAITgib WH) 6)
  147.                        P3 (polar P2 (EAITgib WV) 12)
  148.                        P4 (polar P3 (EAITgib (+ WH 180)) 14)
  149.                        P5 (polar P4 (EAITgib (+ WV 180)) 12)
  150.                        P6 (polar P1 (EAITgib WH) 4)
  151.                        P7 (polar P6 (EAITgib WV) 9)
  152.                        P8 (polar P7 (EAITgib (+ WH 180)) 12)
  153.                  )
  154.          )
  155.          ((= X 8)(setq P2 (polar P1 (EAITgib WH) 8)
  156.                        P3 (polar P2 (EAITgib WV) 12)
  157.                        P4 (polar P3 (EAITgib (+ WH 180)) 14)
  158.                        P5 (polar P4 (EAITgib (+ WV 180)) 12)
  159.                        P6 (polar P1 (EAITgib (+ WH 180)) 4)
  160.                        P7 (polar P6 (EAITgib WV) 9)
  161.                        P8 (polar P7 (EAITgib WH) 12)
  162.                  )
  163.         )
  164.         (T       (setq P2 (polar P1 (EAITgib WH) 10)
  165.                        P3 (polar P2 (EAITgib WV) 12)
  166.                        P4 (polar P3 (EAITgib (+ WH 180)) 14)
  167.                        P5 (polar P4 (EAITgib (+ WV 180)) 12)
  168.                        P6 (polar P1 (EAITgib WH) 8)
  169.                        P7 (polar P6 (EAITgib WV) 9)
  170.                        P8 (polar P7 (EAITgib (+ WH 180)) 12)
  171.                  )
  172.         )
  173.    )
  174.    (command EAITege (strcat EAITpfn "37071s1") P1 "" "" (+ WV 180))
  175.    (setq E1 (entlast))
  176.    (command EAITlay EAITlse "EAIT50" ""
  177.             EAITlin P2 P3 P4 P5 P2 ""
  178.             EAITlin P6 P7 P8 ""
  179.             EAITlay EAITlse "EAITstp" ""
  180.             EAITlin (polar (polar P2 (EAITgib WV) 6) (EAITgib WH) 3) (polar (polar P5 (EAITgib WV) 6) (EAITgib (+ WH 180)) 3) "" )
  181.    (setq SS1 (EAITSS E1))
  182.    (setq BName (EAITbnr))
  183.    (command EAITblo BName P1 SS1 ""
  184.             EAITege BName P1 "" "" "")
  185.  
  186.    (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITgib Wix) 2.5) "" "" (+ 90 (EAITbig (EAITbw)))
  187.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  188.    )
  189.  
  190.    (EAITvarz2)
  191.    (princ)
  192. );defun SH
  193.  
  194.  
  195.  
  196. (defun C:37071V1 ( / X NL P0 P1 P2 P3 P4 P5 P6 P7 P8 P10 P11 P12 P13
  197.                      WH WV  E1 SS1 BName)
  198.    (EAITDBL "0037071")
  199.    (princ (strcat "\n\n" EAITbez1))
  200.    (EAITvari)
  201.    (EAITvars)
  202.  
  203.    ;Einbaulage
  204.    (setq X nil)
  205.    (while (not X)
  206.       (if (not EAITebl)(setq EAITebl 6))
  207.       (EAITmsg "mb_mld15" "\n" "005" "<")(princ EAITebl)(princ "> : ") ;Einbaulage X (4; 6; 8; 10) < EAITebl >:
  208.       (initget 6)
  209.       (setq X (getint))
  210.       (cond ((= X nil)(setq X EAITebl))
  211.             ((= X   4)(princ))
  212.             ((= X   6)(princ))
  213.             ((= X   8)(princ))
  214.             ((= X  10)(princ))
  215.             (T        (setq X nil))
  216.       )
  217.    )        
  218.    (setq EAITebl X)
  219.  
  220.    ;Lage
  221.    (setvar "ORTHOMODE" 0)
  222.    (setvar "OSMODE" 32)
  223.    (EAITmsg "mb_mld15" "\n" "007" " :")  ;1. Nutlinie:
  224.    (setq NL (entsel " ")
  225.          P0 (osnap (cadr NL) EAITofnaec))
  226.    (EAITmsg "mb_mld15" "\n" "008" nil)(EAITmsg "mb_mld10" " " "015" " : ")(princ "<")(princ EAITofsch)(princ "> ")
  227.                                          ; Punkt auf 2. Nutlinie (Return = relativ) : <SCH> 
  228.    (setq P1 (getpoint P0))
  229.    (if (= P1 nil)(setq P1 (EAITrpt)))
  230.    (setvar "ORTHOMODE" 0)
  231.    (setvar "OSMODE" 0)
  232.    (setq P10 (osnap P0 EAITofend)
  233.          P12 (osnap P0 EAITofmit)
  234.          WH  (angle P10 P12)
  235.          WV  (+ WH (/ Pi 2))
  236.          P13 (inters P1 (polar P1 WV 4) P10 P12 nil)
  237.          P1  (mapcar '/ (mapcar '+ P13 P1) '(2 2 2))
  238.          WV  (angle P1 P13) 
  239.          WH  (+ WV (/ Pi 2))
  240.          WH  (EAITbig WH)
  241.          WV  (EAITbig WV) 
  242.    )
  243.  
  244.   (if (/= (cdr (assoc 2 (entget (car NL)))) nil) (command EAITurs P0) )
  245.   (command EAITzom EAITzof  (mapcar '- P1 '(50 50 0)) (mapcar '+ P1 '(100 100 0)))
  246.   (if (/= (ssget (polar P1 (EAITgib WV) 2.5)) nil)
  247.         (command EAITbru (polar P1 (EAITgib WV) 2.5) EAITbre (polar (polar P1 (EAITgib WH) 6) (EAITgib WV)  2.5) (polar (polar P1 (EAITgib WH) -6) (EAITgib WV) 2.5))
  248.   )       
  249.   (if (/= (ssget (polar P1 (EAITgib WV) -2.5)) nil)
  250.         (command EAITbru (polar P1 (EAITgib WV) -2.5) EAITbre (polar (polar P1 (EAITgib WH) 6) (EAITgib WV) -2.5) (polar (polar P1 (EAITgib WH) -6) (EAITgib WV) -2.5))
  251.   )
  252.   (cond ((= X 4)(setq P3 (polar (polar P1 (EAITgib WV) 4) (EAITgib WH) -6)
  253.                       P4 (polar P3 (EAITgib WH) 12)
  254.                       P5 (polar P4 (EAITgib (+ WV 180)) 14)
  255.                       P6 (polar P5 (EAITgib (+ WH 180)) 12)
  256.                 )
  257.         )
  258.         ((= X 6)(setq P3 (polar (polar P1 (EAITgib WV) 6) (EAITgib WH) -6)
  259.                       P4 (polar P3 (EAITgib WH) 12)
  260.                       P5 (polar P4 (EAITgib (+ WV 180)) 14)
  261.                       P6 (polar P5 (EAITgib (+ WH 180)) 12)
  262.                 )
  263.         )
  264.         ((= X 8)(setq P3 (polar (polar P1 (EAITgib WV) 8) (EAITgib WH) -6)
  265.                       P4 (polar P3 (EAITgib WH) 12)
  266.                       P5 (polar P4 (EAITgib (+ WV 180)) 14)
  267.                       P6 (polar P5 (EAITgib (+ WH 180)) 12)
  268.                 )
  269.         )
  270.         (T      (setq P3 (polar (polar P1 (EAITgib WV) 10) (EAITgib WH) -6)
  271.                       P4 (polar P3 (EAITgib WH) 12)
  272.                       P5 (polar P4 (EAITgib (+ WV 180)) 14)
  273.                       P6 (polar P5 (EAITgib (+ WH 180)) 12)
  274.                 )
  275.         )
  276.   )
  277.   (command EAITlay EAITlse "EAIT50" ""
  278.            EAITlin P3 P4 "")
  279.   (setq E1 (entlast))
  280.   (command EAITlin P4 P5 P6 P3 ""
  281.            EAITlay EAITlse "EAITstp" ""
  282.            EAITlin (polar (polar P3 (EAITgib WH) 6) (EAITgib WV) 3) (polar (polar P6 (EAITgib WH) 6) (EAITgib (+ WV 180)) 3) ""
  283.   )
  284.   (setq SS1 (EAITSS E1))
  285.   (setq BName (EAITbnr))
  286.   (command EAITblo BName P1 SS1 ""
  287.            EAITege BName P1 "" "" ""
  288.            EAITzom EAITzov )
  289.  
  290.    (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITgib WH) 2.5) "" "" WH
  291.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  292.    )
  293.  
  294.    (EAITvarz2)
  295.    (princ)
  296. );defun V1
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303. (defun C:37071V2 (/ X L NL P P0 P1 P2 P3 P4 P5 P6 P7 P8 P10 P11 P12 P13 P20 P21
  304.                    n LGes WH WV nx E1 SS1 BName)
  305.    (EAITDBL "0037071")
  306.    (princ (strcat "\n\n" EAITbez1))
  307.    (EAITvari)
  308.    (EAITvars)
  309.  
  310.    ;Einbaulage
  311.    (setq X nil)
  312.    (while (not X)
  313.       (if (not EAITebl)(setq EAITebl 6))
  314.       (EAITmsg "mb_mld15" "\n" "005" "<")(princ EAITebl)(princ "> : ") ;Einbaulage X (4; 6; 8; 10) < EAITebl >:
  315.       (initget 6)
  316.       (setq X (getint))
  317.       (cond ((= X nil)(setq X EAITebl))
  318.             ((= X   4)(princ))
  319.             ((= X   6)(princ))
  320.             ((= X   8)(princ))
  321.             ((= X  10)(princ))
  322.             (T        (setq X nil))
  323.       )
  324.    )        
  325.    (setq EAITebl X)
  326.  
  327.    ;Lage + Anzahl
  328.    (setq L nil)
  329.    (while (not L)
  330.        (setvar "ORTHOMODE" 0)
  331.        (EAITbpt EAITofes 33 (EAITmg "mb_mld12" "017"))  ;  1. Punkt:
  332.        (setq P20 (getpoint))
  333.        (if (= P20 nil)(setq P20 (EAITrpt)))
  334.        (EAITbpt EAITofes 33 (EAITmg "mb_mld12" "018"))  ;  2. Punkt:
  335.        (setq P21 (getpoint P20))
  336.        (if (= P21 nil)(setq P21 (EAITrpt)))
  337.        (setvar "ORTHOMODE" 0)
  338.        (setvar "OSMODE" 512)
  339.        (EAITmsg "mb_mld12" "\n" "015" ": ")  ;1. Nutlinie:
  340.        (setq NL (entsel " ")
  341.              P0 (cadr NL))
  342.        (setvar "OSMODE" 128)
  343.        (EAITmsg "mb_mld12" "\n" "016" ": ")  ;2. Nutlinie:
  344.        (setq P1 (getpoint P0))
  345.        (setvar "ORTHOMODE" 0)
  346.        (setvar "OSMODE" 0)
  347.        (setvar "APERTURE" 4)
  348.        (setq P10 (osnap P0 EAITofend)
  349.              P11 (osnap P1 EAITofend)
  350.              P12 (osnap P0 EAITofmit)
  351.              P13 (osnap P1 EAITofmit)
  352.              WH  (angle P10 P12)
  353.              WV  (angle P11 P10)
  354.              P1  (mapcar '/ (mapcar '+ P10 P11) '(2 2 2))
  355.              WH  (EAITbig WH)
  356.              WV  (EAITbig WV)
  357.       )
  358.       (initget 6 "?")
  359.       (EAITmsg "mb_mld12" "\n" "019" " ")  ;Anzahl der Multibloecke (2,3,...,?): <?>
  360.       (setq n (getint)
  361.             LGes (distance P20 P21) )
  362.       (cond ((or (= n nil)(= n "?")) (setq n (+ 2 (fix (/ (- LGes 120) 400)))) )
  363.             ((= n 1)                 (setq n 2))
  364.       )
  365.       (setq L  (/ (- LGes 120) (float (- n 1))))
  366.       (if (< L EAITlmin)(progn (setq L nil) (EAITmsg "mb_mld12" "\n" "006" " ")(princ EAITlmin)(EAITmsg "mb_mld13" nil "006" nil)(EAITmsg "mb_mld12" " " "020" "\n")))
  367.                                ;Ungültige Eingabe: es werden min. EAITlmin mm je Multiblock benötigt!
  368.    )
  369.  
  370.    ;Schleife
  371.    (setq P1 (polar P1 (angle P10 P12) (- 60 L) )
  372.          nx nil)
  373.    (repeat n
  374.       (setq P1 (polar P1 (EAITgib WH) L))
  375.       (if (not nx)
  376.           (progn (setq nx 1)
  377.           (if (/= (cdr (assoc 2 (entget (car NL)))) nil) (command EAITurs P0) )
  378.           ))
  379.       (command EAITzom EAITzof  (mapcar '- P1 '(50 50 0)) (mapcar '+ P1 '(100 100 0)))
  380.       (if (/= (ssget (polar P1 (EAITgib WV) 2.5)) nil)
  381.  
  382.            (command EAITbru (polar P1 (EAITgib WV) 2.5) EAITbre (polar (polar P1 (EAITgib WH) 6) (EAITgib WV) 2.5) (polar (polar P1 (EAITgib WH) -6) (EAITgib WV) 2.5))
  383.  
  384.       )
  385.       (if (/= (ssget (polar P1 (EAITgib WV) -2.5)) nil)
  386.            
  387.            (command EAITbru (polar P1 (EAITgib WV) -2.5) EAITbre (polar (polar P1 (EAITgib WH) 6) (EAITgib WV) -2.5) (polar (polar P1 (EAITgib WH) -6) (EAITgib WV) -2.5))
  388.  
  389.       )
  390.       (command EAITzom EAITzov )
  391.       (if (= nx 1)
  392.          (progn
  393.          (setq nx 0)
  394.   (cond ((= X 4)(setq P3 (polar (polar P1 (EAITgib WV) 4) (EAITgib WH) -6)
  395.                       P4 (polar P3 (EAITgib WH) 12)
  396.                       P5 (polar P4 (EAITgib (+ WV 180)) 14)
  397.                       P6 (polar P5 (EAITgib (+ WH 180)) 12)
  398.                 )
  399.         )
  400.         ((= X 6)(setq P3 (polar (polar P1 (EAITgib WV) 6) (EAITgib WH) -6)
  401.                       P4 (polar P3 (EAITgib WH) 12)
  402.                       P5 (polar P4 (EAITgib (+ WV 180)) 14)
  403.                       P6 (polar P5 (EAITgib (+ WH 180)) 12)
  404.                 )
  405.         )
  406.         ((= X 8)(setq P3 (polar (polar P1 (EAITgib WV) 8) (EAITgib WH) -6)
  407.                       P4 (polar P3 (EAITgib WH) 12)
  408.                       P5 (polar P4 (EAITgib (+ WV 180)) 14)
  409.                       P6 (polar P5 (EAITgib (+ WH 180)) 12)
  410.                 )
  411.         )
  412.         (T      (setq P3 (polar (polar P1 (EAITgib WV) 10) (EAITgib WH) -6)
  413.                       P4 (polar P3 (EAITgib WH) 12)
  414.                       P5 (polar P4 (EAITgib (+ WV 180)) 14)
  415.                       P6 (polar P5 (EAITgib (+ WH 180)) 12)
  416.                 )
  417.         )
  418.   )
  419.          (command EAITlay EAITlse "EAIT50" ""
  420.                   EAITlin P3 P4 "")
  421.          (setq E1 (entlast))
  422.          (command EAITlin P4 P5 P6 P3 ""
  423.                   EAITlay EAITlse "EAITstp" ""
  424.                   EAITlin (polar (polar P3 (EAITgib WH) 6) (EAITgib WV) 3) (polar (polar P6 (EAITgib WH) 6) (EAITgib (+ WV 180)) 3) ""
  425.          )
  426.          (setq SS1 (EAITSS E1))
  427.          (setq BName (EAITbnr))
  428.          (command EAITblo BName P1 SS1 ""
  429.                   EAITege BName P1 "" "" "")
  430.          (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITgib WH) 2.5) "" "" WH
  431.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  432.          )
  433.          )
  434.          (progn
  435.             (command EAITege BName P1 "" "" ""
  436.                      EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITgib WH) 2.5) "" "" WH
  437.                              EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  438.             )
  439.          )
  440.       )
  441.    )
  442.    (EAITvarz2)
  443.    (princ)
  444. );defun V2
  445.  
  446.  
  447.  
  448. (defun C:37071D1 (/ P1 S)
  449.    (EAITDBL "0037071")
  450.    (princ (strcat "\n\n" EAITbez1))
  451.    (EAITvari)
  452.    (EAITvars)
  453.    (setvar "ORTHOMODE" 0)
  454.    (EAITbpt EAITofnaec 512 nil)
  455.    (setq P1 (getpoint))
  456.    (if (= P1 nil)(setq P1 (EAITrpt)))
  457.    (setvar "ORTHOMODE" 1)
  458.    (setvar "OSMODE" 0)
  459.  
  460.    (initget (strcat (EAITmg "mb_mld13" "008") " " (EAITmg "mb_mld13" "009")))
  461.    (EAITmsg "mb_mld12" "\n" "021" " ")(EAITmsg "mb_mld13" nil "008" "/<")(EAITmsg "mb_mld13" nil "009" ">")
  462.                          ;Vollstaendige Darstellung der Multiblöcke ?  Ja/<Nein>
  463.    (setq s (getreal))
  464.    (if (= s (EAITmg "mb_mld13" "008"))(setq s (strcat EAITpfn "37071d1"))(setq s (strcat EAITpfn "37071d2")))
  465.  
  466.    (EAITmsg "mb_mld10" nil "003" nil)            ;Drehwinkel
  467.    (command EAITege S  P1 "" "" EAITofkei pause)
  468.  
  469.    (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITbw) 2.5) "" "" (EAITbig (EAITbw))
  470.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  471.    )
  472.  
  473.    (EAITvarz2)
  474.    (princ)
  475. );defun D1
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482. (defun C:37071D2 (/ L P10 P11 W WH n LGes nx P0 s s1)
  483.    (EAITDBL "0037071")
  484.    (princ (strcat "\n\n" EAITbez1))
  485.    (EAITvari)
  486.    (EAITvars)
  487.  
  488.    ;Lage + Anzahl
  489.    (setq L nil)
  490.    (while (not L)
  491.       (setvar "ORTHOMODE" 0)
  492.       (EAITbpt EAITofes 33 (EAITmg "mb_mld12" "017"))  ;  1. Punkt:
  493.       (setq P10 (getpoint))
  494.       (if (= P10 nil)(setq P10 (EAITrpt)))
  495.       (EAITbpt EAITofes 33 (EAITmg "mb_mld12" "018"))  ;  2. Punkt:
  496.       (setq P11 (getpoint P10))
  497.       (if (= P11 nil)(setq P11 (EAITrpt)))
  498.       (setvar "ORTHOMODE" 0)
  499.       (setvar "OSMODE" 0)
  500.       (setq W  (angle P11 P10)
  501.             WH (+ (EAITbig W) 90) )
  502.  
  503.       (initget 6 "?")
  504.       (EAITmsg "mb_mld12" "\n" "019" " ")  ;Anzahl der Multibloecke (2,3,...,?): <?>
  505.       (setq n (getint))
  506.       (setq LGes (distance P10 P11))
  507.       (cond ((or (= n nil)(= n "?")) (setq n (+ 2 (fix (/ (- LGes 120) 400)))) )
  508.             ((= n 1)                 (setq n 2))
  509.       )
  510.       (setq L  (/ (- LGes 120) (float (- n 1))))
  511.       (if (< L EAITlmin)(progn (setq L nil) (EAITmsg "mb_mld12" "\n" "006" " ")(princ EAITlmin)(EAITmsg "mb_mld13" nil "006" nil)(EAITmsg "mb_mld12" " " "020" "\n")))
  512.                                ;Ungültige Eingabe: es werden min. EAITlmin mm je Multiblock benötigt!
  513.    )
  514.  
  515.  
  516.    (initget (strcat (EAITmg "mb_mld13" "008") " " (EAITmg "mb_mld13" "009")))
  517.    (EAITmsg "mb_mld12" "\n" "021" " ")(EAITmsg "mb_mld13" nil "008" "/<")(EAITmsg "mb_mld13" nil "009" ">")
  518.                          ;Vollstaendige Darstellung der Multiblöcke ?  Ja/<Nein>
  519.    (setq s (getreal))
  520.    (if (= s (EAITmg "mb_mld13" "008"))(setq s1 (strcat EAITpfn "37071d1"))(setq s1 (strcat EAITpfn "37071d2")))
  521.  
  522.    ;1. Einfügen
  523.    (setq nx nil
  524.          P0 (polar P11 W (- 60 L)) )
  525.    (repeat n
  526.       (setq P0 (polar P0 W L))
  527.       (command EAITege s1 P0 "" "" WH
  528.                EAITege (strcat EAITpfn "EAITinfo") (polar P0 (EAITbw) 2.5) "" "" (EAITbig (EAITbw))
  529.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  530.       )
  531.    )
  532.  
  533.    (EAITvarz2)
  534.    (princ)
  535. );defun D2
  536. (princ)
  537.  
  538.